//
//  CoreDataUtil.h
//  YiJuZhangShou
//
//  Created by 冷悦 on 16/3/7.
//  Copyright © 2016年 Uranus. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ErrorLogDataObject.h"
#import "LogDataObject.h"
typedef NS_ENUM(NSUInteger, LogType){
    CoreDataLog = 0,
    CoreDataErrorLog
};

@interface CoreDataUtil : NSObject

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;

@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;

@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

@property (strong, nonatomic) NSMutableArray<__kindof LogDataObject *> *logs;

@property (strong, nonatomic) NSMutableArray<__kindof ErrorLogDataObject *> *errorLogs;

/**
 *  获取本地存储工具（行为日志和错误日志处理）单例
 *
 *  @return 本地存储工具（行为日志和错误日志处理)
 */
+ (instancetype)sharedInstance;

/**
 *  保存日志到数据库
 */
- (void)saveContext;

/**
 *  获取存储在沙盒里的具体位置
 *
 *  @return 存储在沙盒里的具体位置
 */
- (NSURL *)applicationDocumentsDirectory;

/**
 *  上传错误日志
 */
- (void)uploadErrorLogs;

/**
 *  上传用户行为记录
 */
- (void)uploadUserRecords;

/**
 *  删除指定日志类型本地数据
 *
 *  @param logType 日志类型
 */
- (void)deleteLogs:(LogType)logType;

@end
